package main 

import "fmt"
import "strconv"
import "strings"

func main() {
	str := "hello" // golang的编码统一为utf-8(ascii的字符(字母和数字) 占一个字节)
	fmt.Println(len(str))

	// 打印了字符
	str2 := "hello北京"
	// 转换中文
	r := []rune(str2)
	for i := 0; i < len(r); i++ {
		// 按字节遍历出现乱码
		fmt.Printf("字符 = %c\n", r[i])
	}

	// 字符串转整数
	n, err := strconv.Atoi("123")
	if err != nil {
		fmt.Println("转换错误:", err)
	} else {
		fmt.Println("转换结果：", n)
	}

	// 整数转字符串
	str = strconv.Itoa(12345)
	fmt.Println("str =", str)

	// 字符串转[]byte
	var bytes = []byte("hello go")
	fmt.Printf("bytes=%v\n", bytes)

	// []byte转字符串
	str = string([]byte{97, 98, 99})
	fmt.Printf("str=%v\n", str)

	// 10进制转2,8,16进制
	str = strconv.FormatInt(123, 2)
	fmt.Printf("123对应的二进制是=%v\n", str)

	// 查找子串是否在指定字符串中
	b := strings.Contains("seafood", "foo")
	fmt.Printf("b=%v\n", b)

	// 统计一个字符串有几个指定的子串
	num := strings.Count("ceheese", "e")
	fmt.Printf("num=%v\n", num)

	// 不区分大小写的字符串(==是区分字母大小写的)
	b = strings.EqualFold("abc", "Abc")
	fmt.Printf("b=%v\n", b)

	// 返回子串在字符串第一次出现的index值
	index := strings.Index("NLT_abc", "abc")
	fmt.Printf("index=%v\n", index)

}